source("../../lib/som-utils.R")
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
source("../../lib/maps-utils.R")
Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
mpr.set_base_path_analysis()
model <- mpr.load_model("som-324.rds.xz")
summary(model)
SOM of size 10x10 with a hexagonal topology and a bubble neighbourhood function.
The number of data layers is 1.
Distance measure(s) used: sumofsquares.
Training data included: 94881 objects.
Mean distance to the closest unit in the map: 0.312.
plot(model, type="changes")
df <- mpr.load_data("datos_mes.csv.xz")
df
summary(df)
id_estacion fecha fecha_cnt tmax
Length:94881 Length:94881 Min. : 1.000 Min. :-53.0
Class :character Class :character 1st Qu.: 4.000 1st Qu.:148.0
Mode :character Mode :character Median : 6.000 Median :198.0
Mean : 6.497 Mean :200.2
3rd Qu.: 9.000 3rd Qu.:255.0
Max. :12.000 Max. :403.0
tmin precip nevada prof_nieve
Min. :-121.00 Min. : 0.00 Min. :0.000000 Min. : 0.000
1st Qu.: 53.00 1st Qu.: 3.00 1st Qu.:0.000000 1st Qu.: 0.000
Median : 98.00 Median : 10.00 Median :0.000000 Median : 0.000
Mean : 98.86 Mean : 16.25 Mean :0.000295 Mean : 0.467
3rd Qu.: 148.00 3rd Qu.: 22.00 3rd Qu.:0.000000 3rd Qu.: 0.000
Max. : 254.00 Max. :422.00 Max. :6.000000 Max. :1834.000
longitud latitud altitud
Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.:38.28 1st Qu.: -5.6417 1st Qu.: 42.0
Median :40.82 Median : -3.4500 Median : 247.0
Mean :39.66 Mean : -3.4350 Mean : 418.5
3rd Qu.:42.08 3rd Qu.: 0.4914 3rd Qu.: 656.0
Max. :43.57 Max. : 4.2156 Max. :2535.0
world <- ne_countries(scale = "medium", returnclass = "sf")
spain <- subset(world, admin == "Spain")
plot(model, type="count", shape = "straight", palette.name = mpr.degrade.bleu)
NĂºmero de elementos en cada celda:
nb <- table(model$unit.classif)
print(nb)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
161 219 1112 1084 1060 1377 1008 243 19 2 410 711 581 10 962 1325
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
953 670 38 5 450 1038 1635 325 1309 1205 1348 75 272 119 1338 1393
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
1421 1435 1333 1382 1626 1216 1112 460 861 1374 1218 1424 763 1024 225 1360
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
924 456 1245 1097 1298 1450 1240 1009 1161 988 1185 944 1018 1418 1373 1632
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
1591 1204 1479 1184 675 401 856 1014 1438 1880 1839 859 1279 998 845 270
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
1531 1631 1575 1025 1258 479 593 600 382 94 1733 1892 1668 1099 707 189
97 98 99 100
1146 227 84 27
ComprobaciĂ³n de nodos vacĂos:
dim_model <- 10*10;
len_nb = length(nb);
empty_nodes <- dim_model != len_nb;
if (empty_nodes) {
print(paste("[Warning] Existen nodos vacĂos: ", len_nb, "/", dim_model))
}
plot(model, type="dist.neighbours", shape = "straight")
model_colnames = c("fecha_cnt", "tmax", "tmin", "precip", "nevada", "prof_nieve")
model_ncol = length(model_colnames)
plot(model, shape = "straight")
par(mfrow=c(3,4))
for (j in 1:model_ncol) {
plot(model, type="property", property=getCodes(model,1)[,j],
palette.name=mpr.coolBlueHotRed,
main=model_colnames[j],
cex=0.5, shape = "straight")
}
if (!empty_nodes) {
cor <- apply(getCodes(model,1), 2, mpr.weighted.correlation, w=nb, som=model)
print(cor)
}
fecha_cnt tmax tmin precip nevada prof_nieve
[1,] -0.7603017 -0.4321094 -0.4469328 0.32007045 0.005222191 0.04860608
[2,] 0.1619183 0.8127935 0.8536625 -0.02583183 -0.015973666 -0.04665903
RepresentaciĂ³n de cada variable en un mapa de factores:
if (!empty_nodes) {
par(mfrow=c(1,1))
plot(cor[1,], cor[2,], xlim=c(-1,1), ylim=c(-1,1), type="n")
lines(c(-1,1),c(0,0))
lines(c(0,0),c(-1,1))
text(cor[1,], cor[2,], labels=model_colnames, cex=0.75)
symbols(0,0,circles=1,inches=F,add=T)
}
Importancia de cada variable - varianza ponderada por el tamaño de la celda:
if (!empty_nodes) {
sigma2 <- sqrt(apply(getCodes(model,1),2,function(x,effectif)
{m<-sum(effectif*(x-weighted.mean(x,effectif))^2)/(sum(effectif)-1)},
effectif=nb))
print(sort(sigma2,decreasing=T))
}
prof_nieve fecha_cnt tmax precip tmin nevada
0.9831934 0.9778331 0.9757191 0.9745181 0.9744643 0.9600090
if (!empty_nodes) {
hac <- mpr.hac(model, nb)
}
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=3)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=3)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.:148.0 1st Qu.: 53.00 1st Qu.: 3.00
Median : 6.000 Median :198.0 Median : 98.00 Median : 10.00
Mean : 6.497 Mean :200.2 Mean : 98.87 Mean : 16.25
3rd Qu.: 9.000 3rd Qu.:255.0 3rd Qu.: 148.00 3rd Qu.: 22.00
Max. :12.000 Max. :403.0 Max. : 254.00 Max. :422.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0.0000000 1st Qu.: 0.0000 1st Qu.:38.28 1st Qu.: -5.6417
Median :0.0000000 Median : 0.0000 Median :40.82 Median : -3.4500
Mean :0.0001897 Mean : 0.3974 Mean :39.66 Mean : -3.4350
3rd Qu.:0.0000000 3rd Qu.: 0.0000 3rd Qu.:42.08 3rd Qu.: 0.4914
Max. :3.0000000 Max. :892.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 247.0
Mean : 418.5
3rd Qu.: 656.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. :2 Min. :71.00 Min. :-1 Min. :14.00 Min. :4.0
1st Qu.:2 1st Qu.:72.25 1st Qu.:-1 1st Qu.:15.25 1st Qu.:4.5
Median :2 Median :73.50 Median :-1 Median :16.50 Median :5.0
Mean :2 Mean :73.50 Mean :-1 Mean :16.50 Mean :5.0
3rd Qu.:2 3rd Qu.:74.75 3rd Qu.:-1 3rd Qu.:17.75 3rd Qu.:5.5
Max. :2 Max. :76.00 Max. :-1 Max. :19.00 Max. :6.0
prof_nieve longitud latitud altitud
Min. : 5 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.: 7 1st Qu.:40.78 1st Qu.:-2.846 1st Qu.:349.3
Median : 9 Median :41.08 Median :-2.242 Median :435.6
Mean : 9 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:11 3rd Qu.:41.37 3rd Qu.:-1.637 3rd Qu.:521.8
Max. :13 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. :2.0 Min. :-4.0 Min. :-51.0 Min. :19.0 Min. :0
1st Qu.:2.0 1st Qu.: 0.0 1st Qu.:-48.0 1st Qu.:33.0 1st Qu.:0
Median :3.0 Median :35.0 Median :-26.0 Median :49.0 Median :0
Mean :2.6 Mean :20.6 Mean :-32.8 Mean :41.4 Mean :0
3rd Qu.:3.0 3rd Qu.:36.0 3rd Qu.:-23.0 3rd Qu.:50.0 3rd Qu.:0
Max. :3.0 Max. :36.0 Max. :-16.0 Max. :56.0 Max. :0
prof_nieve longitud latitud altitud
Min. :1017 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:1073 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :1168 Median :40.78 Median :-4.01 Median :1894
Mean :1317 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:1494 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=4)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=4)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.:148.0 1st Qu.: 53.00 1st Qu.: 3.00
Median : 6.000 Median :198.0 Median : 98.00 Median : 10.00
Mean : 6.497 Mean :200.2 Mean : 98.88 Mean : 16.25
3rd Qu.: 9.000 3rd Qu.:255.0 3rd Qu.: 148.00 3rd Qu.: 22.00
Max. :12.000 Max. :403.0 Max. : 254.00 Max. :422.00
nevada prof_nieve longitud latitud
Min. :0 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0 1st Qu.: 0.0000 1st Qu.:38.28 1st Qu.: -5.6417
Median :0 Median : 0.0000 Median :40.82 Median : -3.4501
Mean :0 Mean : 0.3973 Mean :39.66 Mean : -3.4351
3rd Qu.:0 3rd Qu.: 0.0000 3rd Qu.:42.08 3rd Qu.: 0.4914
Max. :0 Max. :892.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 247.0
Mean : 418.5
3rd Qu.: 656.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. :2 Min. :71.00 Min. :-1 Min. :14.00 Min. :4.0
1st Qu.:2 1st Qu.:72.25 1st Qu.:-1 1st Qu.:15.25 1st Qu.:4.5
Median :2 Median :73.50 Median :-1 Median :16.50 Median :5.0
Mean :2 Mean :73.50 Mean :-1 Mean :16.50 Mean :5.0
3rd Qu.:2 3rd Qu.:74.75 3rd Qu.:-1 3rd Qu.:17.75 3rd Qu.:5.5
Max. :2 Max. :76.00 Max. :-1 Max. :19.00 Max. :6.0
prof_nieve longitud latitud altitud
Min. : 5 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.: 7 1st Qu.:40.78 1st Qu.:-2.846 1st Qu.:349.3
Median : 9 Median :41.08 Median :-2.242 Median :435.6
Mean : 9 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:11 3rd Qu.:41.37 3rd Qu.:-1.637 3rd Qu.:521.8
Max. :13 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.0 Min. : 69.00 Min. :-24.00 Min. : 3.00
1st Qu.: 2.0 1st Qu.: 86.25 1st Qu.:-12.50 1st Qu.: 6.00
Median : 7.0 Median : 92.00 Median : 6.50 Median :10.50
Mean : 6.8 Mean : 96.80 Mean : 7.90 Mean :11.40
3rd Qu.:12.0 3rd Qu.: 96.75 3rd Qu.: 29.25 3rd Qu.:14.75
Max. :12.0 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud altitud
Min. :1.00 Min. :0.0 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.:1.25 1st Qu.:0.0 1st Qu.:40.48 1st Qu.:-3.450 1st Qu.:263.0
Median :2.00 Median :0.5 Median :41.08 Median :-2.242 Median :435.6
Mean :1.80 Mean :1.1 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:2.00 3rd Qu.:1.0 3rd Qu.:41.67 3rd Qu.:-1.033 3rd Qu.:608.1
Max. :3.00 Max. :7.0 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. :2.0 Min. :-4.0 Min. :-51.0 Min. :19.0 Min. :0
1st Qu.:2.0 1st Qu.: 0.0 1st Qu.:-48.0 1st Qu.:33.0 1st Qu.:0
Median :3.0 Median :35.0 Median :-26.0 Median :49.0 Median :0
Mean :2.6 Mean :20.6 Mean :-32.8 Mean :41.4 Mean :0
3rd Qu.:3.0 3rd Qu.:36.0 3rd Qu.:-23.0 3rd Qu.:50.0 3rd Qu.:0
Max. :3.0 Max. :36.0 Max. :-16.0 Max. :56.0 Max. :0
prof_nieve longitud latitud altitud
Min. :1017 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:1073 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :1168 Median :40.78 Median :-4.01 Median :1894
Mean :1317 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:1494 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=5)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=5)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-53.0 Min. :-121.0 Min. : 0.00 Min. :0
1st Qu.: 4.000 1st Qu.:149.0 1st Qu.: 53.0 1st Qu.: 3.00 1st Qu.:0
Median : 6.000 Median :198.0 Median : 98.0 Median : 10.00 Median :0
Mean : 6.498 Mean :200.3 Mean : 98.9 Mean : 16.24 Mean :0
3rd Qu.: 9.000 3rd Qu.:255.0 3rd Qu.: 148.0 3rd Qu.: 22.00 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. : 254.0 Max. :422.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:38.28 1st Qu.: -5.6417 1st Qu.: 42.0
Median : 0.0000 Median :40.82 Median : -3.4500 Median : 247.0
Mean : 0.2746 Mean :39.66 Mean : -3.4350 Mean : 418.2
3rd Qu.: 0.0000 3rd Qu.:42.08 3rd Qu.: 0.4914 3rd Qu.: 656.0
Max. :429.0000 Max. :43.57 Max. : 4.2156 Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. :1.000 Min. :-12.00 Min. :-72.00 Min. : 19.00 Min. :0
1st Qu.:2.000 1st Qu.: 9.50 1st Qu.:-43.50 1st Qu.: 41.00 1st Qu.:0
Median :2.000 Median : 15.00 Median :-34.00 Median : 56.00 Median :0
Mean :2.368 Mean : 23.21 Mean :-31.95 Mean : 65.79 Mean :0
3rd Qu.:3.000 3rd Qu.: 28.50 3rd Qu.:-25.00 3rd Qu.: 82.00 3rd Qu.:0
Max. :4.000 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. :465.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:531.0 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :606.0 Median :40.78 Median :-4.01 Median :1894
Mean :612.8 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:661.5 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :892.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. :2 Min. :71.00 Min. :-1 Min. :14.00 Min. :4.0
1st Qu.:2 1st Qu.:72.25 1st Qu.:-1 1st Qu.:15.25 1st Qu.:4.5
Median :2 Median :73.50 Median :-1 Median :16.50 Median :5.0
Mean :2 Mean :73.50 Mean :-1 Mean :16.50 Mean :5.0
3rd Qu.:2 3rd Qu.:74.75 3rd Qu.:-1 3rd Qu.:17.75 3rd Qu.:5.5
Max. :2 Max. :76.00 Max. :-1 Max. :19.00 Max. :6.0
prof_nieve longitud latitud altitud
Min. : 5 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.: 7 1st Qu.:40.78 1st Qu.:-2.846 1st Qu.:349.3
Median : 9 Median :41.08 Median :-2.242 Median :435.6
Mean : 9 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:11 3rd Qu.:41.37 3rd Qu.:-1.637 3rd Qu.:521.8
Max. :13 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.0 Min. : 69.00 Min. :-24.00 Min. : 3.00
1st Qu.: 2.0 1st Qu.: 86.25 1st Qu.:-12.50 1st Qu.: 6.00
Median : 7.0 Median : 92.00 Median : 6.50 Median :10.50
Mean : 6.8 Mean : 96.80 Mean : 7.90 Mean :11.40
3rd Qu.:12.0 3rd Qu.: 96.75 3rd Qu.: 29.25 3rd Qu.:14.75
Max. :12.0 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud altitud
Min. :1.00 Min. :0.0 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.:1.25 1st Qu.:0.0 1st Qu.:40.48 1st Qu.:-3.450 1st Qu.:263.0
Median :2.00 Median :0.5 Median :41.08 Median :-2.242 Median :435.6
Mean :1.80 Mean :1.1 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:2.00 3rd Qu.:1.0 3rd Qu.:41.67 3rd Qu.:-1.033 3rd Qu.:608.1
Max. :3.00 Max. :7.0 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. :2.0 Min. :-4.0 Min. :-51.0 Min. :19.0 Min. :0
1st Qu.:2.0 1st Qu.: 0.0 1st Qu.:-48.0 1st Qu.:33.0 1st Qu.:0
Median :3.0 Median :35.0 Median :-26.0 Median :49.0 Median :0
Mean :2.6 Mean :20.6 Mean :-32.8 Mean :41.4 Mean :0
3rd Qu.:3.0 3rd Qu.:36.0 3rd Qu.:-23.0 3rd Qu.:50.0 3rd Qu.:0
Max. :3.0 Max. :36.0 Max. :-16.0 Max. :56.0 Max. :0
prof_nieve longitud latitud altitud
Min. :1017 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:1073 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :1168 Median :40.78 Median :-4.01 Median :1894
Mean :1317 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:1494 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=6)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=6)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.:149.0 1st Qu.: 53.00 1st Qu.: 3.00
Median : 6.000 Median :198.0 Median : 98.00 Median : 10.00
Mean : 6.499 Mean :200.3 Mean : 98.95 Mean : 16.23
3rd Qu.: 9.000 3rd Qu.:255.0 3rd Qu.: 148.00 3rd Qu.: 22.00
Max. :12.000 Max. :403.0 Max. : 254.00 Max. :422.00
nevada prof_nieve longitud latitud
Min. :0 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0 1st Qu.: 0.0000 1st Qu.:38.28 1st Qu.: -5.6417
Median :0 Median : 0.0000 Median :40.82 Median : -3.4500
Mean :0 Mean : 0.1623 Mean :39.66 Mean : -3.4348
3rd Qu.:0 3rd Qu.: 0.0000 3rd Qu.:42.08 3rd Qu.: 0.4914
Max. :0 Max. :197.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 247.0
Mean : 417.6
3rd Qu.: 656.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. :1.000 Min. :-12.00 Min. :-72.00 Min. : 19.00 Min. :0
1st Qu.:2.000 1st Qu.: 9.50 1st Qu.:-43.50 1st Qu.: 41.00 1st Qu.:0
Median :2.000 Median : 15.00 Median :-34.00 Median : 56.00 Median :0
Mean :2.368 Mean : 23.21 Mean :-31.95 Mean : 65.79 Mean :0
3rd Qu.:3.000 3rd Qu.: 28.50 3rd Qu.:-25.00 3rd Qu.: 82.00 3rd Qu.:0
Max. :4.000 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. :465.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:531.0 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :606.0 Median :40.78 Median :-4.01 Median :1894
Mean :612.8 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:661.5 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :892.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. :2 Min. :71.00 Min. :-1 Min. :14.00 Min. :4.0
1st Qu.:2 1st Qu.:72.25 1st Qu.:-1 1st Qu.:15.25 1st Qu.:4.5
Median :2 Median :73.50 Median :-1 Median :16.50 Median :5.0
Mean :2 Mean :73.50 Mean :-1 Mean :16.50 Mean :5.0
3rd Qu.:2 3rd Qu.:74.75 3rd Qu.:-1 3rd Qu.:17.75 3rd Qu.:5.5
Max. :2 Max. :76.00 Max. :-1 Max. :19.00 Max. :6.0
prof_nieve longitud latitud altitud
Min. : 5 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.: 7 1st Qu.:40.78 1st Qu.:-2.846 1st Qu.:349.3
Median : 9 Median :41.08 Median :-2.242 Median :435.6
Mean : 9 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:11 3rd Qu.:41.37 3rd Qu.:-1.637 3rd Qu.:521.8
Max. :13 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.0 Min. : 69.00 Min. :-24.00 Min. : 3.00
1st Qu.: 2.0 1st Qu.: 86.25 1st Qu.:-12.50 1st Qu.: 6.00
Median : 7.0 Median : 92.00 Median : 6.50 Median :10.50
Mean : 6.8 Mean : 96.80 Mean : 7.90 Mean :11.40
3rd Qu.:12.0 3rd Qu.: 96.75 3rd Qu.: 29.25 3rd Qu.:14.75
Max. :12.0 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud altitud
Min. :1.00 Min. :0.0 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.:1.25 1st Qu.:0.0 1st Qu.:40.48 1st Qu.:-3.450 1st Qu.:263.0
Median :2.00 Median :0.5 Median :41.08 Median :-2.242 Median :435.6
Mean :1.80 Mean :1.1 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:2.00 3rd Qu.:1.0 3rd Qu.:41.67 3rd Qu.:-1.033 3rd Qu.:608.1
Max. :3.00 Max. :7.0 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-12.00 Min. :-63.00 Min. : 5.00 Min. :0
1st Qu.: 1.250 1st Qu.: 13.50 1st Qu.:-38.00 1st Qu.:25.25 1st Qu.:0
Median : 2.000 Median : 27.50 Median :-26.00 Median :47.00 Median :0
Mean : 3.342 Mean : 31.89 Mean :-25.89 Mean :46.53 Mean :0
3rd Qu.: 3.750 3rd Qu.: 47.75 3rd Qu.:-15.00 3rd Qu.:66.75 3rd Qu.:0
Max. :12.000 Max. : 96.00 Max. : 28.00 Max. :92.00 Max. :0
prof_nieve longitud latitud altitud
Min. :199.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:229.5 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :270.0 Median :40.78 Median :-4.01 Median :1894
Mean :280.6 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:318.0 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :429.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. :2.0 Min. :-4.0 Min. :-51.0 Min. :19.0 Min. :0
1st Qu.:2.0 1st Qu.: 0.0 1st Qu.:-48.0 1st Qu.:33.0 1st Qu.:0
Median :3.0 Median :35.0 Median :-26.0 Median :49.0 Median :0
Mean :2.6 Mean :20.6 Mean :-32.8 Mean :41.4 Mean :0
3rd Qu.:3.0 3rd Qu.:36.0 3rd Qu.:-23.0 3rd Qu.:50.0 3rd Qu.:0
Max. :3.0 Max. :36.0 Max. :-16.0 Max. :56.0 Max. :0
prof_nieve longitud latitud altitud
Min. :1017 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:1073 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :1168 Median :40.78 Median :-4.01 Median :1894
Mean :1317 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:1494 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=8)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=8)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. :-53.0 Min. :-121.00 Min. : 0.00 Min. :0
1st Qu.: 2.00 1st Qu.:119.0 1st Qu.: 26.00 1st Qu.: 6.00 1st Qu.:0
Median : 4.00 Median :152.0 Median : 56.00 Median : 15.00 Median :0
Mean : 6.04 Mean :147.2 Mean : 52.32 Mean : 20.74 Mean :0
3rd Qu.:11.00 3rd Qu.:178.0 3rd Qu.: 80.00 3rd Qu.: 29.00 3rd Qu.:0
Max. :12.00 Max. :326.0 Max. : 211.00 Max. :155.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:39.49 1st Qu.: -5.3456 1st Qu.: 69.0
Median : 0.0000 Median :41.15 Median : -2.7331 Median : 412.0
Mean : 0.2979 Mean :40.51 Mean : -2.8171 Mean : 529.6
3rd Qu.: 0.0000 3rd Qu.:42.36 3rd Qu.: 0.4942 3rd Qu.: 775.0
Max. :197.0000 Max. :43.57 Max. : 4.2156 Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. :1.000 Min. :-12.00 Min. :-72.00 Min. : 19.00 Min. :0
1st Qu.:2.000 1st Qu.: 9.50 1st Qu.:-43.50 1st Qu.: 41.00 1st Qu.:0
Median :2.000 Median : 15.00 Median :-34.00 Median : 56.00 Median :0
Mean :2.368 Mean : 23.21 Mean :-31.95 Mean : 65.79 Mean :0
3rd Qu.:3.000 3rd Qu.: 28.50 3rd Qu.:-25.00 3rd Qu.: 82.00 3rd Qu.:0
Max. :4.000 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. :465.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:531.0 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :606.0 Median :40.78 Median :-4.01 Median :1894
Mean :612.8 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:661.5 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :892.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. :2 Min. :71.00 Min. :-1 Min. :14.00 Min. :4.0
1st Qu.:2 1st Qu.:72.25 1st Qu.:-1 1st Qu.:15.25 1st Qu.:4.5
Median :2 Median :73.50 Median :-1 Median :16.50 Median :5.0
Mean :2 Mean :73.50 Mean :-1 Mean :16.50 Mean :5.0
3rd Qu.:2 3rd Qu.:74.75 3rd Qu.:-1 3rd Qu.:17.75 3rd Qu.:5.5
Max. :2 Max. :76.00 Max. :-1 Max. :19.00 Max. :6.0
prof_nieve longitud latitud altitud
Min. : 5 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.: 7 1st Qu.:40.78 1st Qu.:-2.846 1st Qu.:349.3
Median : 9 Median :41.08 Median :-2.242 Median :435.6
Mean : 9 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:11 3rd Qu.:41.37 3rd Qu.:-1.637 3rd Qu.:521.8
Max. :13 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.0 Min. : 69.00 Min. :-24.00 Min. : 3.00
1st Qu.: 2.0 1st Qu.: 86.25 1st Qu.:-12.50 1st Qu.: 6.00
Median : 7.0 Median : 92.00 Median : 6.50 Median :10.50
Mean : 6.8 Mean : 96.80 Mean : 7.90 Mean :11.40
3rd Qu.:12.0 3rd Qu.: 96.75 3rd Qu.: 29.25 3rd Qu.:14.75
Max. :12.0 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud altitud
Min. :1.00 Min. :0.0 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.:1.25 1st Qu.:0.0 1st Qu.:40.48 1st Qu.:-3.450 1st Qu.:263.0
Median :2.00 Median :0.5 Median :41.08 Median :-2.242 Median :435.6
Mean :1.80 Mean :1.1 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:2.00 3rd Qu.:1.0 3rd Qu.:41.67 3rd Qu.:-1.033 3rd Qu.:608.1
Max. :3.00 Max. :7.0 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-12.00 Min. :-63.00 Min. : 5.00 Min. :0
1st Qu.: 1.250 1st Qu.: 13.50 1st Qu.:-38.00 1st Qu.:25.25 1st Qu.:0
Median : 2.000 Median : 27.50 Median :-26.00 Median :47.00 Median :0
Mean : 3.342 Mean : 31.89 Mean :-25.89 Mean :46.53 Mean :0
3rd Qu.: 3.750 3rd Qu.: 47.75 3rd Qu.:-15.00 3rd Qu.:66.75 3rd Qu.:0
Max. :12.000 Max. : 96.00 Max. : 28.00 Max. :92.00 Max. :0
prof_nieve longitud latitud altitud
Min. :199.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:229.5 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :270.0 Median :40.78 Median :-4.01 Median :1894
Mean :280.6 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:318.0 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :429.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. :2.0 Min. :-4.0 Min. :-51.0 Min. :19.0 Min. :0
1st Qu.:2.0 1st Qu.: 0.0 1st Qu.:-48.0 1st Qu.:33.0 1st Qu.:0
Median :3.0 Median :35.0 Median :-26.0 Median :49.0 Median :0
Mean :2.6 Mean :20.6 Mean :-32.8 Mean :41.4 Mean :0
3rd Qu.:3.0 3rd Qu.:36.0 3rd Qu.:-23.0 3rd Qu.:50.0 3rd Qu.:0
Max. :3.0 Max. :36.0 Max. :-16.0 Max. :56.0 Max. :0
prof_nieve longitud latitud altitud
Min. :1017 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:1073 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :1168 Median :40.78 Median :-4.01 Median :1894
Mean :1317 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:1494 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :138.0 Min. : 52.0 Min. : 0.000 Min. :0
1st Qu.: 6.000 1st Qu.:228.0 1st Qu.:125.0 1st Qu.: 1.000 1st Qu.:0
Median : 7.000 Median :259.0 Median :151.0 Median : 6.000 Median :0
Mean : 6.992 Mean :260.5 Mean :151.5 Mean : 9.939 Mean :0
3rd Qu.: 9.000 3rd Qu.:291.0 3rd Qu.:178.0 3rd Qu.:15.000 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :82.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:37.26 1st Qu.: -6.0442 1st Qu.: 32.0
Median : 0.00000 Median :39.99 Median : -3.6781 Median : 87.0
Mean : 0.00524 Mean :38.69 Mean : -4.1018 Mean : 292.1
3rd Qu.: 0.00000 3rd Qu.:41.66 3rd Qu.: 0.3664 3rd Qu.: 541.0
Max. :38.00000 Max. :43.57 Max. : 4.2156 Max. :2451.0
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : -8.0 Min. :-58.00 Min. :102.0 Min. :0
1st Qu.: 5.000 1st Qu.:118.0 1st Qu.: 57.00 1st Qu.:117.0 1st Qu.:0
Median :11.000 Median :138.0 Median : 75.00 Median :132.0 Median :0
Mean : 8.764 Mean :137.8 Mean : 74.03 Mean :142.2 Mean :0
3rd Qu.:12.000 3rd Qu.:158.2 3rd Qu.: 95.00 3rd Qu.:150.0 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.889 Min. : 1.00
1st Qu.: 0.0000 1st Qu.:41.77 1st Qu.: -8.616 1st Qu.: 42.98
Median : 0.0000 Median :42.43 Median : -8.411 Median : 261.00
Mean : 0.6782 Mean :41.37 Mean : -6.061 Mean : 405.46
3rd Qu.: 0.0000 3rd Qu.:42.89 3rd Qu.: -3.107 3rd Qu.: 370.00
Max. :81.0000 Max. :43.57 Max. : 3.035 Max. :2400.00
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=10)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=10)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
df.cluster09 <- subset(df, cluster==9)
df.cluster10 <- subset(df, cluster==10)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster09 <- select(df.cluster09, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster10 <- select(df.cluster10, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-47.0 Min. :-115.00 Min. : 30.00
1st Qu.: 3.000 1st Qu.:126.0 1st Qu.: 55.00 1st Qu.: 48.00
Median :10.000 Median :150.0 Median : 75.00 Median : 59.00
Mean : 7.941 Mean :145.4 Mean : 71.63 Mean : 62.29
3rd Qu.:11.000 3rd Qu.:176.0 3rd Qu.: 99.00 3rd Qu.: 74.00
Max. :12.000 Max. :326.0 Max. : 211.00 Max. :155.00
nevada prof_nieve longitud latitud
Min. :0 Min. : 0.0000 Min. :27.82 Min. :-17.889
1st Qu.:0 1st Qu.: 0.0000 1st Qu.:40.78 1st Qu.: -6.829
Median :0 Median : 0.0000 Median :42.44 Median : -3.831
Mean :0 Mean : 0.1989 Mean :41.35 Mean : -3.890
3rd Qu.:0 3rd Qu.: 0.0000 3rd Qu.:43.31 3rd Qu.: -0.482
Max. :0 Max. :58.0000 Max. :43.57 Max. : 4.216
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 143.0
Mean : 443.8
3rd Qu.: 445.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. : 6 Min. :-24.0 Min. :-110.00 Min. : 0.00 Min. :0
1st Qu.:10 1st Qu.:116.0 1st Qu.: 28.00 1st Qu.: 5.00 1st Qu.:0
Median :11 Median :155.0 Median : 60.00 Median :12.00 Median :0
Mean :11 Mean :150.6 Mean : 57.68 Mean :14.31 Mean :0
3rd Qu.:12 3rd Qu.:187.0 3rd Qu.: 89.00 3rd Qu.:22.00 3rd Qu.:0
Max. :12 Max. :248.0 Max. : 150.00 Max. :59.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.92 Min. :-17.755 Min. : 1.0
1st Qu.: 0.000 1st Qu.:39.48 1st Qu.: -4.699 1st Qu.: 85.0
Median : 0.000 Median :40.96 Median : -2.357 Median : 521.0
Mean : 0.088 Mean :40.35 Mean : -2.570 Mean : 589.6
3rd Qu.: 0.000 3rd Qu.:42.08 3rd Qu.: 0.595 3rd Qu.: 790.0
Max. :59.000 Max. :43.57 Max. : 4.216 Max. :2535.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 1.000 1st Qu.:119.0 1st Qu.: 21.00 1st Qu.: 5.00
Median : 3.000 Median :151.0 Median : 48.00 Median : 12.00
Mean : 2.623 Mean :145.4 Mean : 44.88 Mean : 15.62
3rd Qu.: 4.000 3rd Qu.:174.0 3rd Qu.: 72.00 3rd Qu.: 24.00
Max. :12.000 Max. :259.0 Max. : 157.00 Max. :126.00
nevada prof_nieve longitud latitud
Min. :0 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0 1st Qu.: 0.0000 1st Qu.:39.48 1st Qu.: -4.8500
Median :0 Median : 0.0000 Median :41.11 Median : -2.6544
Mean :0 Mean : 0.4464 Mean :40.43 Mean : -2.7337
3rd Qu.:0 3rd Qu.: 0.0000 3rd Qu.:42.18 3rd Qu.: 0.4942
Max. :0 Max. :197.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 71.0
Median : 442.0
Mean : 511.9
3rd Qu.: 775.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. :1.000 Min. :-12.00 Min. :-72.00 Min. : 19.00 Min. :0
1st Qu.:2.000 1st Qu.: 9.50 1st Qu.:-43.50 1st Qu.: 41.00 1st Qu.:0
Median :2.000 Median : 15.00 Median :-34.00 Median : 56.00 Median :0
Mean :2.368 Mean : 23.21 Mean :-31.95 Mean : 65.79 Mean :0
3rd Qu.:3.000 3rd Qu.: 28.50 3rd Qu.:-25.00 3rd Qu.: 82.00 3rd Qu.:0
Max. :4.000 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. :465.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:531.0 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :606.0 Median :40.78 Median :-4.01 Median :1894
Mean :612.8 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:661.5 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :892.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. :2 Min. :71.00 Min. :-1 Min. :14.00 Min. :4.0
1st Qu.:2 1st Qu.:72.25 1st Qu.:-1 1st Qu.:15.25 1st Qu.:4.5
Median :2 Median :73.50 Median :-1 Median :16.50 Median :5.0
Mean :2 Mean :73.50 Mean :-1 Mean :16.50 Mean :5.0
3rd Qu.:2 3rd Qu.:74.75 3rd Qu.:-1 3rd Qu.:17.75 3rd Qu.:5.5
Max. :2 Max. :76.00 Max. :-1 Max. :19.00 Max. :6.0
prof_nieve longitud latitud altitud
Min. : 5 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.: 7 1st Qu.:40.78 1st Qu.:-2.846 1st Qu.:349.3
Median : 9 Median :41.08 Median :-2.242 Median :435.6
Mean : 9 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:11 3rd Qu.:41.37 3rd Qu.:-1.637 3rd Qu.:521.8
Max. :13 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip
Min. : 1.0 Min. : 69.00 Min. :-24.00 Min. : 3.00
1st Qu.: 2.0 1st Qu.: 86.25 1st Qu.:-12.50 1st Qu.: 6.00
Median : 7.0 Median : 92.00 Median : 6.50 Median :10.50
Mean : 6.8 Mean : 96.80 Mean : 7.90 Mean :11.40
3rd Qu.:12.0 3rd Qu.: 96.75 3rd Qu.: 29.25 3rd Qu.:14.75
Max. :12.0 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud altitud
Min. :1.00 Min. :0.0 Min. :40.48 Min. :-3.450 Min. :263.0
1st Qu.:1.25 1st Qu.:0.0 1st Qu.:40.48 1st Qu.:-3.450 1st Qu.:263.0
Median :2.00 Median :0.5 Median :41.08 Median :-2.242 Median :435.6
Mean :1.80 Mean :1.1 Mean :41.08 Mean :-2.242 Mean :435.6
3rd Qu.:2.00 3rd Qu.:1.0 3rd Qu.:41.67 3rd Qu.:-1.033 3rd Qu.:608.1
Max. :3.00 Max. :7.0 Max. :41.67 Max. :-1.033 Max. :608.1
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :-12.00 Min. :-63.00 Min. : 5.00 Min. :0
1st Qu.: 1.250 1st Qu.: 13.50 1st Qu.:-38.00 1st Qu.:25.25 1st Qu.:0
Median : 2.000 Median : 27.50 Median :-26.00 Median :47.00 Median :0
Mean : 3.342 Mean : 31.89 Mean :-25.89 Mean :46.53 Mean :0
3rd Qu.: 3.750 3rd Qu.: 47.75 3rd Qu.:-15.00 3rd Qu.:66.75 3rd Qu.:0
Max. :12.000 Max. : 96.00 Max. : 28.00 Max. :92.00 Max. :0
prof_nieve longitud latitud altitud
Min. :199.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:229.5 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :270.0 Median :40.78 Median :-4.01 Median :1894
Mean :280.6 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:318.0 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :429.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip nevada
Min. :2.0 Min. :-4.0 Min. :-51.0 Min. :19.0 Min. :0
1st Qu.:2.0 1st Qu.: 0.0 1st Qu.:-48.0 1st Qu.:33.0 1st Qu.:0
Median :3.0 Median :35.0 Median :-26.0 Median :49.0 Median :0
Mean :2.6 Mean :20.6 Mean :-32.8 Mean :41.4 Mean :0
3rd Qu.:3.0 3rd Qu.:36.0 3rd Qu.:-23.0 3rd Qu.:50.0 3rd Qu.:0
Max. :3.0 Max. :36.0 Max. :-16.0 Max. :56.0 Max. :0
prof_nieve longitud latitud altitud
Min. :1017 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.:1073 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median :1168 Median :40.78 Median :-4.01 Median :1894
Mean :1317 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.:1494 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) summary(df.cluster09)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :138.0 Min. : 52.0 Min. : 0.000 Min. :0
1st Qu.: 6.000 1st Qu.:228.0 1st Qu.:125.0 1st Qu.: 1.000 1st Qu.:0
Median : 7.000 Median :259.0 Median :151.0 Median : 6.000 Median :0
Mean : 6.992 Mean :260.5 Mean :151.5 Mean : 9.939 Mean :0
3rd Qu.: 9.000 3rd Qu.:291.0 3rd Qu.:178.0 3rd Qu.:15.000 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :82.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:37.26 1st Qu.: -6.0442 1st Qu.: 32.0
Median : 0.00000 Median :39.99 Median : -3.6781 Median : 87.0
Mean : 0.00524 Mean :38.69 Mean : -4.1018 Mean : 292.1
3rd Qu.: 0.00000 3rd Qu.:41.66 3rd Qu.: 0.3664 3rd Qu.: 541.0
Max. :38.00000 Max. :43.57 Max. : 4.2156 Max. :2451.0
if (!empty_nodes) summary(df.cluster10)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : -8.0 Min. :-58.00 Min. :102.0 Min. :0
1st Qu.: 5.000 1st Qu.:118.0 1st Qu.: 57.00 1st Qu.:117.0 1st Qu.:0
Median :11.000 Median :138.0 Median : 75.00 Median :132.0 Median :0
Mean : 8.764 Mean :137.8 Mean : 74.03 Mean :142.2 Mean :0
3rd Qu.:12.000 3rd Qu.:158.2 3rd Qu.: 95.00 3rd Qu.:150.0 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.889 Min. : 1.00
1st Qu.: 0.0000 1st Qu.:41.77 1st Qu.: -8.616 1st Qu.: 42.98
Median : 0.0000 Median :42.43 Median : -8.411 Median : 261.00
Mean : 0.6782 Mean :41.37 Mean : -6.061 Mean : 405.46
3rd Qu.: 0.0000 3rd Qu.:42.89 3rd Qu.: -3.107 3rd Qu.: 370.00
Max. :81.0000 Max. :43.57 Max. : 3.035 Max. :2400.00
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1], dim(df.cluster09)[1], dim(df.cluster10)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08", "cluster09", "cluster10"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.hist(df.cluster09)
if (!empty_nodes) mpr.hist(df.cluster10)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster09)
if (!empty_nodes) mpr.boxplot(df.cluster10)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
df.cluster09.grouped <- mpr.group_by_geo(df.cluster09)
df.cluster10.grouped <- mpr.group_by_geo(df.cluster10)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster09.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster10.grouped)